import UIKit

@available(iOS 2.0, *)
extension QKC where AA :UIImagePickerController {
     open func delegate_qk_s(_ delegate:  (UIImagePickerControllerDelegate & UINavigationControllerDelegate)?) -> QKC<AA,YY,ZZ, (UIImagePickerControllerDelegate & UINavigationControllerDelegate)?>{
		return link(next: delegate).then_QK { $0.value.delegate = delegate }
	}
     open func delegate_qk_g() -> QKC<AA,YY,ZZ, (UIImagePickerControllerDelegate & UINavigationControllerDelegate)?>{
		 self +^ self.value.delegate
	}

		// default value is UIImagePickerControllerSourceTypePhotoLibrary.
    open func sourceType_qk_s(_ sourceType:  UIImagePickerController.SourceType ) -> QKC<AA,YY,ZZ, UIImagePickerController.SourceType >{
		return link(next: sourceType).then_QK { $0.value.sourceType = sourceType }
	}
    open func sourceType_qk_g() -> QKC<AA,YY,ZZ, UIImagePickerController.SourceType >{
		 self +^ self.value.sourceType
	}

    open func mediaTypes_qk_s(_ mediaTypes:  [String]) -> QKC<AA,YY,ZZ, [String]>{
		return link(next: mediaTypes).then_QK { $0.value.mediaTypes = mediaTypes }
	}
    open func mediaTypes_qk_g() -> QKC<AA,YY,ZZ, [String]>{
		 self +^ self.value.mediaTypes
	}

	// default value is an array containing kUTTypeImage.
		// replacement for -allowsImageEditing; default value is NO.
    @available(iOS 3.1, *)
    open func allowsEditing_qk_s(_ allowsEditing:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: allowsEditing).then_QK { $0.value.allowsEditing = allowsEditing }
	}
    @available(iOS 3.1, *)
    open func allowsEditing_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.allowsEditing
	}

		// default value is UIImagePickerControllerImageExportPresetCompatible.
    @available(iOS 11.0, *)
    open func imageExportPreset_qk_s(_ imageExportPreset:  UIImagePickerController.ImageURLExportPreset ) -> QKC<AA,YY,ZZ, UIImagePickerController.ImageURLExportPreset >{
		return link(next: imageExportPreset).then_QK { $0.value.imageExportPreset = imageExportPreset }
	}
    @available(iOS 11.0, *)
    open func imageExportPreset_qk_g() -> QKC<AA,YY,ZZ, UIImagePickerController.ImageURLExportPreset >{
		 self +^ self.value.imageExportPreset
	}

	// video properties apply only if mediaTypes includes kUTTypeMovie
		// default value is 10 minutes.
    @available(iOS 3.1, *)
    open func videoMaximumDuration_qk_s(_ videoMaximumDuration:  TimeInterval ) -> QKC<AA,YY,ZZ, TimeInterval >{
		return link(next: videoMaximumDuration).then_QK { $0.value.videoMaximumDuration = videoMaximumDuration }
	}
    @available(iOS 3.1, *)
    open func videoMaximumDuration_qk_g() -> QKC<AA,YY,ZZ, TimeInterval >{
		 self +^ self.value.videoMaximumDuration
	}

		// default value is UIImagePickerControllerQualityTypeMedium. If the cameraDevice does not support the videoQuality, it will use the default value.
    @available(iOS 3.1, *)
    open func videoQuality_qk_s(_ videoQuality:  UIImagePickerController.QualityType ) -> QKC<AA,YY,ZZ, UIImagePickerController.QualityType >{
		return link(next: videoQuality).then_QK { $0.value.videoQuality = videoQuality }
	}
    @available(iOS 3.1, *)
    open func videoQuality_qk_g() -> QKC<AA,YY,ZZ, UIImagePickerController.QualityType >{
		 self +^ self.value.videoQuality
	}

		// videoExportPreset can be used to specify the transcoding quality for videos (via a AVAssetExportPreset* string). If the value is nil (the default) then the transcodeQuality is determined by videoQuality instead. Not valid if the source type is UIImagePickerControllerSourceTypeCamera
    @available(iOS 11.0, *)
    open func videoExportPreset_qk_s(_ videoExportPreset:  String ) -> QKC<AA,YY,ZZ, String >{
		return link(next: videoExportPreset).then_QK { $0.value.videoExportPreset = videoExportPreset }
	}
    @available(iOS 11.0, *)
    open func videoExportPreset_qk_g() -> QKC<AA,YY,ZZ, String >{
		 self +^ self.value.videoExportPreset
	}

	// camera additions available only if sourceType is UIImagePickerControllerSourceTypeCamera.
		// set to NO to hide all standard camera UI. default is YES
    @available(iOS 3.1, *)
    open func showsCameraControls_qk_s(_ showsCameraControls:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: showsCameraControls).then_QK { $0.value.showsCameraControls = showsCameraControls }
	}
    @available(iOS 3.1, *)
    open func showsCameraControls_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.showsCameraControls
	}

		// set a view to overlay the preview view.
    @available(iOS 3.1, *)
    open func cameraOverlayView_qk_s(_ cameraOverlayView:  UIView? ) -> QKC<AA,YY,ZZ, UIView? >{
		return link(next: cameraOverlayView).then_QK { $0.value.cameraOverlayView = cameraOverlayView }
	}
    @available(iOS 3.1, *)
    open func cameraOverlayView_qk_g() -> QKC<AA,YY,ZZ, UIView? >{
		 self +^ self.value.cameraOverlayView
	}

		// set the transform of the preview view.
    @available(iOS 3.1, *)
    open func cameraViewTransform_qk_s(_ cameraViewTransform:  CGAffineTransform ) -> QKC<AA,YY,ZZ, CGAffineTransform >{
		return link(next: cameraViewTransform).then_QK { $0.value.cameraViewTransform = cameraViewTransform }
	}
    @available(iOS 3.1, *)
    open func cameraViewTransform_qk_g() -> QKC<AA,YY,ZZ, CGAffineTransform >{
		 self +^ self.value.cameraViewTransform
	}

		// default is UIImagePickerControllerCameraCaptureModePhoto
    @available(iOS 4.0, *)
    open func cameraCaptureMode_qk_s(_ cameraCaptureMode:  UIImagePickerController.CameraCaptureMode ) -> QKC<AA,YY,ZZ, UIImagePickerController.CameraCaptureMode >{
		return link(next: cameraCaptureMode).then_QK { $0.value.cameraCaptureMode = cameraCaptureMode }
	}
    @available(iOS 4.0, *)
    open func cameraCaptureMode_qk_g() -> QKC<AA,YY,ZZ, UIImagePickerController.CameraCaptureMode >{
		 self +^ self.value.cameraCaptureMode
	}

		// default is UIImagePickerControllerCameraDeviceRear
    @available(iOS 4.0, *)
    open func cameraDevice_qk_s(_ cameraDevice:  UIImagePickerController.CameraDevice ) -> QKC<AA,YY,ZZ, UIImagePickerController.CameraDevice >{
		return link(next: cameraDevice).then_QK { $0.value.cameraDevice = cameraDevice }
	}
    @available(iOS 4.0, *)
    open func cameraDevice_qk_g() -> QKC<AA,YY,ZZ, UIImagePickerController.CameraDevice >{
		 self +^ self.value.cameraDevice
	}

		// default is UIImagePickerControllerCameraFlashModeAuto.
    @available(iOS 4.0, *)
    open func cameraFlashMode_qk_s(_ cameraFlashMode:  UIImagePickerController.CameraFlashMode ) -> QKC<AA,YY,ZZ, UIImagePickerController.CameraFlashMode >{
		return link(next: cameraFlashMode).then_QK { $0.value.cameraFlashMode = cameraFlashMode }
	}
    @available(iOS 4.0, *)
    open func cameraFlashMode_qk_g() -> QKC<AA,YY,ZZ, UIImagePickerController.CameraFlashMode >{
		 self +^ self.value.cameraFlashMode
	}

    @available(iOS 3.1, *)
    open func takePicture_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.takePicture()
	}

	// clients can initiate additional captures after receiving -imagePickerController:didFinishPickingMediaWithInfo: delegate callback
    @available(iOS 4.0, *)
    open func startVideoCapture_qk_f() -> QKC<AA,YY,ZZ,Bool>{
		 self +^ self.value.startVideoCapture()
	}

    @available(iOS 4.0, *)
    open func stopVideoCapture_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.stopVideoCapture()
	}

}

